/* eslint-disable @typescript-eslint/no-explicit-any */
export interface ShopeeProductInfo {
  itemid: number
  price_max_before_discount: number
  item_status: string
  can_use_wholesale: boolean
  show_free_shipping: boolean
  estimated_days: number
  is_hot_sales?: any
  is_slash_price_item: boolean
  upcoming_flash_sale?: any
  slash_lowest_price?: any
  is_partial_fulfilled: boolean
  condition: number
  show_original_guarantee: boolean
  add_on_deal_info?: any
  is_non_cc_installment_payment_eligible: boolean
  categories: Category[]
  ctime: number
  name: string
  show_shopee_verified_label: boolean
  size_chart?: any
  is_pre_order: boolean
  service_by_shopee_flag: number
  historical_sold: number
  reference_item_id: string
  recommendation_info?: any
  bundle_deal_info?: any
  price_max: number
  has_lowest_price_guarantee: boolean
  shipping_icon_type: number
  images: string[]
  price_before_discount: number
  cod_flag: number
  catid: number
  is_official_shop: boolean
  coin_earn_label?: any
  hashtag_list?: any
  sold: number
  makeup?: any
  item_rating: Itemrating
  show_official_shop_label_in_title: boolean
  discount: string
  reason?: any
  label_ids: number[]
  has_group_buy_stock: boolean
  other_stock: number
  deep_discount?: any
  attributes: Attribute[]
  badge_icon_type: number
  liked: boolean
  cmt_count: number
  image: string
  recommendation_algorithm?: any
  is_cc_installment_payment_eligible: boolean
  shopid: number
  normal_stock: number
  video_info_list: any[]
  installment_plans?: any
  view_count: number
  voucher_info?: any
  current_promotion_has_reserve_stock: boolean
  liked_count: number
  show_official_shop_label: boolean
  price_min_before_discount: number
  show_discount: number
  preview_info?: any
  flag: number
  exclusive_price_info?: any
  current_promotion_reserved_stock: number
  wholesale_tier_list: any[]
  group_buy_info?: any
  shopee_verified: boolean
  hidden_price_display?: any
  transparent_background_image: string
  welcome_package_info?: any
  discount_stock: number
  coin_info: Coininfo
  is_adult: boolean
  currency: string
  raw_discount: number
  is_preferred_plus_seller: boolean
  is_category_failed: boolean
  price_min: number
  can_use_bundle_deal: boolean
  cb_option: number
  brand: string
  stock: number
  status: number
  bundle_deal_id: number
  is_group_buy_item?: any
  description: string
  flash_sale?: any
  models: Model[]
  has_low_fulfillment_rate: boolean
  price: number
  shop_location: string
  tier_variations: Tiervariation[]
  makeups?: any
  welcome_package_type: number
  show_official_shop_label_in_normal_position?: any
  item_type: number
}

interface Tiervariation {
  images: string[]
  properties: any[]
  type: number
  name: string
  options: string[]
}

interface Model {
  itemid: number
  status: number
  current_promotion_reserved_stock: number
  name: string
  promotionid: number
  price: number
  price_stocks: Pricestock[]
  current_promotion_has_reserve_stock: boolean
  currency: string
  normal_stock: number
  extinfo: Extinfo
  price_before_discount: number
  modelid: number
  sold: number
  stock: number
}

interface Extinfo {
  seller_promotion_limit: number
  has_shopee_promo: boolean
  group_buy_info?: any
  holiday_mode_old_stock?: any
  tier_index: number[]
  seller_promotion_refresh_time: number
}

interface Pricestock {
  model_id: number
  stockout_time?: any
  region: string
  rebate?: any
  price: number
  promotion_type: number
  allocated_stock?: any
  shop_id: number
  end_time?: number
  stock_breakdown_by_location: any[]
  item_id: number
  promotion_id: number
  purchase_limit?: any
  start_time?: number
  stock?: number
}

interface Coininfo {
  spend_cash_unit: number
  coin_earn_items: any[]
}

interface Attribute {
  is_pending_qc: boolean
  idx: number
  value: string
  id: number
  is_timestamp: boolean
  name: string
}

interface Itemrating {
  rating_star: number
  rating_count: number[]
  rcount_with_image: number
  rcount_with_context: number
}

interface Category {
  display_name: string
  catid: number
  image?: any
  no_sub: boolean
  is_default_subcat: boolean
  block_buyer_platform?: any
}

export interface ShopeeForderModel {
  tracking_info: Trackinginfo
  shipping_method: string
  forder_logistics_status: number
  fulfillment_channel_id: number
  extra_flag: number
  forder_shipping_status: number
  shop_id: number
  consignment_no: string
  carrier_name: string
  checkout_channel_id: number
  third_party_tn: string
  item_list: Itemlist[]
  parcel_no: number
  order_sn: string
  seller_remark: string
  masking_channel_id: number
  fulfillment_shipping_method: number
  ref1: string
  ship_by_date: number
  allocating_status: number
  preferred_delivery_timeslot?: any
  order_create_time: number
  order_id: number
  pickup_time: number
  expire_time: number
  order_action: Orderaction
  masking_carrier_name: string
  user_id: number
  checkout_carrier_name: string
  order_logistics_status: number
  logistics_flag: number
  parcel_price: string
  is_pickup: number
  split_up: number
  channel_id: number
  is_pre_order: number
  first_mile_tn: string
  fulfillment_carrier_name: string
  dropoff_b2c: number
  shipping_confirm_time: number
  forder_id: string
}

interface Orderaction {
  can_unsplit: boolean
  can_split: boolean
}

interface Itemlist {
  model_id: number
  item_price: number
  virtual_item_id: number
  virtual_model_id: number
  item_id: number
  group_id: number
  quality: number
  order_item_id: number
}

interface Trackinginfo {
  logistics_logs: any[]
  driver_name: string
  driver_phone: number
}

export interface ShopeeOrderModel {
  comm_fee: string
  shipping_method: number
  fulfill_by_shopee: boolean
  payment_method: number
  wallet_discount: string
  shop_id: number
  add_on_deal_id: number
  buyer_address_name: string
  complete_time: number
  fulfillment_shipping_method: number
  actual_shipping_fee: string
  ship_by_date: number
  cancel_time: number
  buyer_cpf_id: string
  return_id: number
  checkout_id: number
  voucher_code: string
  total_price: string
  tax_amount: string
  first_item_is_wholesale: boolean
  is_buyercancel_toship: boolean
  list_type: number
  first_item_count: number
  shipping_confirm_time: number
  payby_date: number
  seller_service_fee: string
  status_ext: number
  pay_by_credit_card: boolean
  first_item_return: boolean
  logistics_status: number
  create_time: number
  auto_cancel_3pl_ack_date: number
  price_before_discount: string
  seller_due_date: number
  coins_cash_by_voucher: string
  channel_hotline: string
  item_count: number
  shipment_config: boolean
  logistics_channel: number
  coin_used: string
  origin_shipping_fee: string
  actual_price: string
  order_id: number
  pickup_time: number
  auto_cancel_arrange_ship_date: number
  voucher_price: string
  trans_detail_shipping_fee: string
  buyer_is_rated: number
  express_channel: number
  logistics_extra_data: string
  dropshipping_info: Dropshippinginfo
  remark: string
  buyer_txn_fee: string
  checkout_carrier_name: string
  checkout_shipping_method: number
  cancel_reason_ext: number
  coin_offset: string
  shipping_proof_status: number
  buyer_address_phone: string
  fulfillment_carrier_name: string
  masking_carrier_name: string
  forder_id: string
  buyer_paid_amount: string
  ratecancel_by_date: number
  first_item_model: string
  buyer_user: Buyeruser
  instant_buyercancel_toship: boolean
  parcel_no: number
  is_request_cancellation: boolean
  order_sn: string
  cancel_by: string
  preferred_delivery_timeslot?: any
  note_mtime: number
  delivery_time: number
  pickup_attempts: number
  seller_userid: number
  logistics_flag: number
  voucher_absorbed_by_seller: boolean
  shipping_address: string
  shipping_fee: string
  shipping_traceno: string
  pickup_cutoff_time: number
  fulfillment_channel_id: number
  buyer_last_change_address_time: number
  currency: string
  escrow_release_time: number
  shipping_proof: string
  logid: number
  checkout_channel_id: number
  order_type: number
  paid_amount: string
  credit_card_promotion_discount: string
  carrier_shipping_fee: number
  rate_by_date: number
  order_ratable: boolean
  note: string
  shipping_fee_discount: number
  card_txn_fee_info: Cardtxnfeeinfo
  status: number
  first_item_name: string
  buyer_cancel_reason: number
  cancellation_end_date?: any
  order_items: Orderitem[]
  actual_carrier: string
  used_voucher: number
  seller_address_id: number
  masking_channel_id: number
  cancel_userid: number
  user_id: number
  seller_address: Selleraddress
  coins_by_voucher: number
  arrange_pickup_by_date: number
  pay_by_wallet: boolean
}

interface Selleraddress {
  status: number
  city: string
  address_id: number
  user_id: number
  name: string
  district: string
  country: string
  town: string
  mtime: number
  logistics_status: number
  full_address: string
  ext_info: Extinfo2
  phone: string
  state: string
  def_time: number
  address: string
  icno: string
  zip_code: string
  ctime: number
}

interface Extinfo2 {
  geo_info: string
}

interface Orderitem {
  is_add_on_sub_item: boolean
  is_virtual_sku: boolean
  item_price: string
  bundle_deal_product: any[]
  comm_fee_rate: string
  shop_id: number
  snapshot_id: number
  add_on_deal_id: number
  model_id: number
  item_list: any[]
  is_wholesale: boolean
  item_model: Itemmodel
  status: number
  bundle_deal_id: number
  product: Product
  item_id: number
  sub_type: number
  bundle_deal_model: any[]
  order_item_id: number
  price_before_bundle: string
  bundle_deal?: any
  amount: number
  order_price: string
  group_id: string
}

interface Product {
  cmt_count: number
  cat_id: number
  currency: string
  shop_id: number
  snapshot_id: number
  images: string[]
  price_before_discount: string
  estimated_days: number
  sku: string
  liked_count: number
  branch: string
  price: string
  stock: number
  status: number
  description: string
  brand: string
  sold: number
  item_id: number
  condition: number
  ctime: number
  name: string
  is_pre_order: boolean
}

interface Itemmodel {
  status: number
  model_id: number
  name: string
  price: string
  ctime: number
  currency: string
  sku: string
  mtime: number
  item_id: number
  promotion_id: number
  price_before_discount: string
  rebate_price: string
  sold: number
  stock: number
}

interface Cardtxnfeeinfo {
  card_txn_fee: string
  rule_id: number
}

interface Buyeruser {
  phone_public: boolean
  buyer_rating: number
  user_id: number
  language: string
  hide_likes: number
  cb_option: number
  followed: boolean
  ext_info: Extinfo
  rating_star: number
  rating_count: number[]
  delivery_order_count: number
  shop_id: number
  portrait: string
  delivery_succ_count: number
  password: string
  user_name: string
  email: string
}

interface Extinfo {
  disable_new_device_login_otp: boolean
  delivery_address_id: number
  address_info: Addressinfo
  holiday_mode_on: boolean
  smid_status: number
  gender: number
  tos_accepted_time: number
  feed_private: boolean
  wallet_password: string
  access: Access
  birth_timestamp: number
  payment_password: string
  ba_check_status: number
}

interface Access {
  wallet_setting: number
  seller_coin_setting: number
  seller_ads_setting: number
  seller_wholesale_setting: number
  hide_likes: number
}

interface Addressinfo {
  in_white_list: boolean
  mcount: number
  mcount_create_time: number
}

interface Dropshippinginfo {
  phone_number: string
  enabled: number
  name: string
}
